package org.Yiran.timetale_re.menu;

import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.common.extensions.IForgeMenuType;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import org.Yiran.timetale_re.Timetale_re;

/**
 * 菜单注册管理类
 * <p>
 * 该类负责管理模组中所有自定义菜单类型的注册。
 * 使用Forge的DeferredRegister系统来延迟注册菜单类型，
 * 确保在正确的时机进行注册。
 * </p>
 */
public class MenuRegister {
    
    // ==============================
    // 注册器定义
    // ==============================

    /**
     * 菜单类型延迟注册器
     * <p>
     * 使用Forge的DeferredRegister系统创建菜单类型注册器，
     * 确保菜单类型在适当的时机被注册到游戏系统中。
     * </p>
     */
    public static final DeferredRegister<MenuType<?>> MENUS = 
        DeferredRegister.create(ForgeRegistries.MENU_TYPES, Timetale_re.MODID);
    
    // ==============================
    // 菜单类型注册
    // ==============================

    /**
     * 符文图纸手册菜单注册对象
     * <p>
     * 注册符文图纸手册的菜单类型，用于创建和管理符文图纸手册的GUI界面。
     * 使用IForgeMenuType.create方法创建菜单类型实例。
     * </p>
     */
    // 符文图纸手册菜单注册
    public static final RegistryObject<MenuType<RuneBlueprintBookMenu>> RUNE_BLUEPRINT_BOOK_MENU = 
        MENUS.register(
                "rune_blueprint_book_menu",
                () -> IForgeMenuType.create(RuneBlueprintBookMenu::new)
        );
}